package com.weishuang.monitor.leader.service;

import com.weishuang.monitor.leader.entity.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weishuang.monitor.leader.entity.dto.MenuDTO;
import com.weishuang.monitor.leader.entity.vo.MenuVO;

import java.util.List;

/**
 * <p>
 * 菜单信息 服务类
 * </p>
 *
 * @author weishuang
 * @since 2021-03-23
 */
public interface ISysMenuService extends IService<SysMenu> {

    /**
     * 获取树形结构数据(不获取功能)
     * @param menu 筛选信息
     * @return
     */
    List<MenuVO> getTreeMenuList(MenuDTO menu);

    /**
     * 获取菜单列表
     * @param menu 筛选信息
     * @return
     */
    List<MenuVO> getMenuList(MenuDTO menu);

    /**
     * 获取用户的菜单列表
     * @return
     */
    List<MenuVO> getMenuListByUserId();

    List<MenuVO> getUserMenuListByUserId(String userCode);

    /***
     * 新增菜单
     * @param menu 菜单信息
     * @return
     */
    int addMenu(SysMenu menu);

    /**
     * 修改菜单
     * @param id 菜单ID
     * @param menu 菜单信息
     * @return
     */
    int updateMenu(SysMenu menu);

    /**
     * 查询当前用户所拥有的菜单：分配角色菜单
     * @param roleId 角色ID
     * @return
     */
    List<MenuVO> listMenuTreeByRoleId(String roleId);

    int deleteMenu(String id);

    List<SysMenu> getSysMenuPermissionByUserId(String userId);
}
